import React from 'react';
export const descriptions = {
  taskNamePlaceholder: '请输入中文、英文、特殊字符或数字，不超过32个字符',
  customIpsPlaceholder:
    '支持IPv4、IPv6、IPv4段、域名、URL，多个目标请用换行符分隔，如\r\n192.168.1.1 \r\n2001:DB8:0:0:8:800:200C:417A\r\n192.168.1.1-192.168.255.25(最大到一个B段)\r\n192.168.1.0/24\r\nwww.example.com\r\nhttp://www.example.com',
  ipInfoPlaceholder: '请输入使用者、使用者类型、ISP、组织等信息',
  customPortsPlaceholder: '请使用"-"指定端口范围，使用","分隔端口。例如: 21,22,23,10-50',
  ignoreIpsPlaceholder:
    '请输入IP地址、域名，多个目标用换行符分隔，如\r\n192.168.1.1\r\n192.168.1.1-192.168.255.255\r\n192.168.1.0/24\r\nwww.abc.com',
  targetLimit: '单个任务最多允许针对2个B段的目标量进行探测（即131,072个目标）。',
  dateLimit: (
    <div>
      <div>
        限制该任务允许扫描的时间范围。例如，可设置该任务只能在2022年6月1日 00:00-2022年7月31
        23:59期间执行。
      </div>
      <div>1.开始时间：在这个时间之后任务才允许执行。非必填；</div>
      <div>2.结束时间：在这个时间之后任务不允许执行。非必填；</div>
      <div>3.结束时间大于开始时间且时间至少间隔三十分钟。</div>
    </div>
  ),
  timeLimit: (
    <div>
      <div>指任务在执行期间，每日允许的时间。</div>
      <div>
        1.如果任务在当天允许时间段内没有完成，任务会暂停，等到第二天允许的时间段再继续执行；
      </div>
      <div>2.如果结束时间小于开始时间。则代表此任务由开始时间到零点，再从零点到结束时间；</div>
      <div>3.开始时间和结束时间至少间隔30分钟。</div>
    </div>
  )
};

export const commonPorts = '21-25,53,80,111,137,139,443,8080'.split(',');

export const drawerTableProps = {
  pagination: false,
  bordered: true,
  size: 'small',
  columns: [
    { dataIndex: 'maxCount', title: '最大连接数', width: 120 },
    { dataIndex: 'rate', title: '扫描带宽', width: 100 },
    { dataIndex: 'ip', title: '任务 IP*(UDP + TCP)', width: 200 },
    { dataIndex: 'time', title: '执行时间', width: 100 },
    { dataIndex: 'env', title: '适用场景' }
  ],
  dataSource: [
    {
      maxCount: 10000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '17小时14分钟',
      env: '上层转发设备处理的最大连接数较低，或者目标资产处理报文性能较差。'
    },
    {
      maxCount: 15000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '11小时40分钟',
      env: '上层转发设备处理的最大连接数较低，或者目标资产处理报文性能较差。'
    },
    {
      maxCount: 75000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '5小时27分钟',
      env: '上层转发设备具备可以同时处理7.5w连接数的性能，网络情况一般'
    },
    {
      maxCount: 150000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '2小时47分钟',
      env: '上层转发设备具备可以同时处理15w连接数的性能，网络情况一般'
    },
    {
      maxCount: 400000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '1小时',
      env: '上层转发设备具备可以同时处理40w连接数的性能，网络情况一般'
    },
    {
      maxCount: 700000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '37分钟',
      env: '上层转发设备具备可以同时处理70w连接数的性能，网络情况良好'
    },
    {
      maxCount: 900000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '28分钟',
      env: '上层转发设备具备可以同时处理90w连接数的性能，网络情况良好'
    },
    {
      maxCount: 1200000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '25分钟',
      env: '上层转发设备具备可以同时处理120w连接数的性能，网络情况良好'
    },
    {
      maxCount: 1500000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '13分钟',
      env: '上层转发设备具备可以同时处理150w连接数的性能，网络情况优'
    },
    {
      maxCount: 1700000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '13分钟',
      env: '上层转发设备具备可以同时处理170w连接数的性能，网络情况优'
    },
    {
      maxCount: 1800000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '12分钟',
      env: '上层转发设备具备可以同时处理180w连接数的性能，网络情况优'
    },
    {
      maxCount: 2200000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '12分钟',
      env: '上层转发设备具备可以同时处理220w连接数的性能，网络情况优'
    },
    {
      maxCount: 5000000,
      rate: '不限速',
      ip: '256 * ( 65535 + 65535)',
      time: '4分钟',
      env: '上层转发设备具备可以同时处理500w连接数的性能，网络情况优'
    }
  ]
};

export const titleMap = {
  Zoomeye: '资产探测',
  VulDetect: '漏洞普查'
};

export const detectionMinTime = 30 * 60 * 1000;
export const CIDRCountList = new Array(16).fill(1).map((item, index) => {
  return Math.pow(2, index);
});
